Creation of training material and documentation is a very visible and key activity in successfully executing software projects. Usually, the technical writers assigned to the development team hold the responsibility and are not necessarily functional or technical experts. The documentation team needs the knowledge briefing from the development team to create effective documentation. Documentation requirements may be classified into concept documentation, user documentation, technical documentation, and operational documentation.
Concept documentation deals with the overall flows in the systems delivered and present an approach to the theory behind the software operations. This is a very high level description of the operations built into the system. User documentation deals with the operations related to the various interfaces to the system and aids the user in day to day activities. Technical documentation deals with the way the system was created in terms of design and constructed pieces and the logic flow that binds the pieces along with the schema for internal data structures. Operational document relates to operating the application delivered in terms of deployment, access rights and location of repositories that need administration.
Each area of documentation and the associated training requires specific knowledge on these aspects of the system delivered. This knowledge is available with the respective teams inside a large project team. Constantly evolving nature of software development poses the problem of making available frozen specifications with which the documentation unit could carry on. Typical problems faced by documentation units are constantly changing software specification and behavior, lack of support to quickly incorporate changes that happen till the release stage, lack of clear handover point to start working on the documentation, and lack of support for maintaining the documentation up to date post implementation.
The two main issues that need to be addressed in creating effective training and documentation for large projects are knowledge creation scheme to aid the documentation and training units and change implementation approach that follows closely the structure with which the knowledge is created.
Complex software programs like Enterprise Resource Planning programs typically are of the size of several millions of lines of code. Even technical users find it difficult to understand the working of these complex programs. Additionally software is intangible and the way a user can “touch” the software system is often limited to the User Interface on the computer monitor. Thus, a primary problem faced by end users is the comprehension of the functionality and the inner workings of the software.
In the absence of such a working understanding of what a complex software system does and how it goes about doing what it does, a user is often unable to trust the output of the software program. This problem is traditionally solved by expensive and time consuming training activities conducted by highly skilled software developers and architects, and is supplemented by voluminous technical documentation. This traditional approach rests on the assumption that an understanding of software code can be transmitted through human contact and voluminous documentation.